When a guest operating system is supported on a host, the guest operating system can run in what is called a “virtual machine,” as the guest operating system does not have control to the physical hardware of the computer system. A virtual machine management system (sometimes referred to as a virtual machine monitor or a hypervisor) is also often employed to manage one or more virtual machines so that multiple virtual machines can run on a single computing device concurrently. The virtual machine management system runs directly on the native hardware and virtualizes the resources of the machine. A host operating system and a virtual machine management system may run side-by-side on the same physical hardware. For purposes of clarity will we use the term virtualization module to refer to all incarnations of a virtual machine management system.
The abstraction of the virtual machine from the underlying hardware provides for flexible resource allocation and facilitates the ability to move, or “migrate,” virtual machines from one host machine to another. Being able to migrate a virtual machine quickly and easily from one host machine to another is useful, for example, for “load balancing” systems, performing hardware or software upgrades, or handling disaster recovery. More specifically, if a virtual machine requires more processing power than is available on one host machine, it can be moved to another host machine that has extra capacity. Moreover, if the host computer system requires hardware maintenance or a software upgrade, the virtual machine may be migrated from one physical computer system to another temporarily, which thereby allows the first physical computer system to be taken down and upgraded. Similarly, in the case of power outage a limited amount of power is available in the backup batteries, all virtual machines of a datacenter can be migrated to another datacenter and then migrated back when the power is restored. Additionally, virtual machines facilitate the offloading of enterprise operations to a hosted datacenter simply to reduce the need for maintaining and upgrading resources.
Live migration of a virtual machine is the process of moving the running virtual machine from the physical computer system that hosts the virtual machine at the time the migration is initiated (the source computer system) to another physical computer system (the target computer system) without causing an unreasonable amount downtime, where unreasonable depends on the workload running in the virtual machine. Live migration provides the core technology required for dynamic load balancing, virtual machine placement, high availability for virtualized workloads during physical computer maintenance, and reduced datacenter power consumption, among others.
A common way of implementing live migration is to create a network connection between two physical computer systems, the source computer system and the target computer system, and use this network connection to copy the state of the virtual machine from the source computer system to the target computer system. However, the need for a separate network connection creates overhead costs, such as administration costs associated with the management of firewalls. In addition, when a separate network connection is required for isolation of migration traffic from other network traffic for capacity or security reasons, there are infrastructure costs associated with setting up this separate network topology.